Como crear una librería con código nativo y usarla posteriormente en un nuevo proyecto.
npx create-react-native-library mi-libreria
cd mi-libreria
yarn
En este caso simplemente usaremos un toast para mostrar un mensaje por pantalla.
MiLibreriaModule.java:
import android.content.Context;
import android.widget.Toast;
@ReactMethod
public void show(String text) {
Context context = getReactApplicationContext();
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
index.tsx:
export function show(text: string): Promise<number> {
return MiLibreria.show(text);
}
En esta parte tendríamos que cambiar MiLibreria por el nombre de nuestra librería:
npm pack
Una vez finaliza la ejecución se genera un archivo .tgz dentro de la carpeta (react-native-mi-libreria-0.1.0.tgz en este caso), mas adelante podremos usar este archivo para importar la librería en otros proyectos.
npx react-native init EjemploUsoLibreria
En nuestro caso instalamos la librería desde nuestro tarball que hemos creado previamente indicando el archivo con el siguiente comando:
cd EjemploUsoLibreria
npm install ..\mi-libreria\react-native-mi-libreria-0.1.0.tgz
Si tenemos nuestra librería en un repositorio podriamos instalarlo con el siguiente comando:
npm install react-native-mi-libreria
const path = require('path');
const root = path.resolve(__dirname, 'node_modules/react-native-mi-libreria');
projectRoot: __dirname,
watchFolders: [root],
import React from 'react';
import {
Button,
View,
} from 'react-native';
import { multiply, show } from 'react-native-mi-libreria';
const App = () => {
return (
<View style={{padding: 10}}>
<Button
title="Press me"
onPress={() => show('Simple Button pressed')}
/>
</View>
);
}
export default App;
npx react-native run-android
Y verificamos que todo funciona correctamente:
React Native | Java | Native Modules | libreria